10 REM---LASER MATH - TONY BRANTNER 20 POKE53280,0:POKE53281,0:PRINTCHR$(8)CHR$(142) 30 DIMML(1,11),HI(4),AN(3) 40 FORA=0TO1:FORZ=0TO11:READML(A,Z):NEXT:NEXT 50 TC=646:S1=54272:S2=S1+7:A=RND(-TI) 60 TT$="[180][146][164][164]ASER [180][146][205][206][161]ATH":FORA=1TO38:SP$=SP$+" ":NEXT 70 FORA=S1TOS1+23:POKEA,0:NEXT:POKES1+24,15:GOSUB740:HT=0:MS=0 80 REM---NEW WAVE 90 PRINT"[147]"TAB(2)"[159]LEVEL"LV+1;TAB(12)TT$;TAB(31)"[159]SPEED"GS 100 CX=1:FORA=1TO4:CY=20+A:GOSUB480:PRINT""MID$("[158][154]",A,1)SP$;:NEXT 110 POKETC,2:CY=21:FORCX=4TO34STEP10:GOSUB480:PRINT"[162][162]":NEXT 120 PRINTTAB(14)"[158]ANSWER[182]":PRINTTAB(2)"HITS [146] ";TAB(27)"MISSES [146] " 130 PN=0:FORA=0TO4:HI(A)=0:NEXT:POKE198,0 140 REM---NEW ENTRY 150 MC=99:IN$="":CY=22:CX=21:GOSUB480:PRINT" " 160 PRINT""TAB(13-LEN(STR$(HT)))HT;TAB(38-LEN(STR$(MS)))MS 170 IFPN=20ANDHT/20=INT(HT/20)THEN360 180 REM---MAIN 190 CY=22:CX=21+LEN(IN$):GOSUB480:PRINT"[209]" 200 MC=MC+1:IFMC<20THENFORA=1TO70:NEXT:GOTO240 210 MC=GS*2:IFPN<20THENLN=INT(RND(1)*4):IFHI(LN)=0THENGOSUB540 220 GOSUB500:Z=0:FORA=0TO3:IFHI(A)THENHI(A)=HI(A)+1:IFHI(A)>17THENZ=1 230 NEXT:IFZTHEN400 240 CY=22:CX=21+LEN(IN$):GOSUB480:PRINT" [157]";:GETA$:Z=LEN(IN$) 250 IFA$=CHR$(13)ANDZTHEN300 260 IFA$=CHR$(20)ANDZTHENIN$=LEFT$(IN$,Z-1):PRINT"[157] ":GOTO190 270 IFA$<"0"ORA$>"9"ORZ>3THEN190 280 IN$=IN$+A$:PRINTA$:GOTO190 290 REM---CHECK ANSWER 300 LN=4:FORA=0TO3:IFHI(A)=0ORAN(A)<>VAL(IN$)THEN320 310 IFHI(A)>HI(LN)THENLN=A 320 NEXT:IFLN<4THENGOSUB650:HT=HT+1:HI(LN)=0:GOTO150 330 POKES1+6,240:POKES1+1,6:POKES1+4,33:FORA=1TO200:NEXT:POKES1+4,32 340 MS=MS+1:GOTO150 350 REM---ADVANCE 360 POKES1+6,248:POKES1+4,17:FORA=1TO12:POKES1+1,A*8:FORZ=1TO70:NEXT:NEXT 370 POKES1+4,16:IFGS<9THENGS=GS+1 380 Z$="PRESS ANY KEY TO ADVANCE":GOSUB440:GOTO90 390 REM---END 400 POKES1+6,248:POKES1+4,33:FORA=45TO1STEP-.1:POKES1+1,A:NEXT 410 POKES1+4,32:A=HT*2-MS:IFA<0THENA=0 420 Z$="FINAL SCORE:"+STR$(A)+" - PRESS ANY KEY":GOSUB440:GOTO70 430 REM---GET KEY 440 CY=2:CX=(40-LEN(Z$))/2:A=0:Z=0:POKE198,0 450 GOSUB480:POKETC,4+Z*3:PRINTLEFT$(Z$,A):A=A+1:IFA>LEN(Z$)THENA=0:Z=1-Z 460 GETA$:ON-(A$="")GOTO450:RETURN 470 REM---PLOT 480 POKE214,CY-1:PRINT:PRINTTAB(CX);:RETURN 490 REM---SCROLL 500 POKE781,3:POKE782,248:POKE91,218:POKE90,40:POKE89,218:POKE88,80 510 SYS41964:POKE781,3:POKE782,248:POKE91,6:POKE90,40:POKE89,6:POKE88,80 520 SYS41964:RETURN 530 REM---NEW SAUCER 540 A=ML(MA/2,LV*4):N1=A+INT(RND(1)*(ML(MA/2,LV*4+1)-A+1)) 550 A=ML(MA/2,LV*4+2):N2=A+INT(RND(1)*(ML(MA/2,LV*4+3)-A+1)) 560 IFMA=0THENAN(LN)=N1+N2 570 IFMA=1THENA=N1+N2:AN(LN)=N1:N1=A 580 IFMA=2THENAN(LN)=N1*N2 590 IFMA=3THENA=N1*N2:AN(LN)=N2:N2=N1:N1=A 600 CX=1+LN*10:POKETC,RND(1)*13+2:PRINT""TAB(CX)LEFT$(SP$,8) 610 PRINTTAB(CX)" [164][175][185][185][175][164] ":PRINTTAB(CX)"[206]"SPC(6)"[205]":PRINTTAB(CX)"[163][183][184][178][178][146][184][183][163]" 620 PRINT"[145][145]"TAB(CX+1)RIGHT$(STR$(N1),3)MID$("+-*/",MA+1,1)MID$(STR$(N2),2) 630 HI(LN)=2:PN=PN+1:RETURN 640 REM---EXPLODE 650 CY=20:CX=4+LN*10:GOSUB480:POKETC,7:POKES1+6,240:POKES1+4,33 660 FORA=20TOHI(LN)+1STEP-1:POKES1+1,A*8:PRINT"[172][187][145][157][157]";:NEXT:POKES1+4,32 670 POKES2+5,26:POKES2+6,9:POKES2+4,128:POKES2+4,129:CY=HI(LN):CX=1+LN*10 680 FORA=2TO7:POKES2+1,40-A*4:GOSUB480:POKETC,A 690 PRINT" [201][205][206][213] ":PRINTTAB(CX)"-[195] [214][214] [195]-":PRINTTAB(CX)" [203][206][205][202] ":NEXT 700 POKE214,CY-1:PRINT:FORA=1TO3:PRINTTAB(CX)LEFT$(SP$,8):NEXT 710 CY=20:CX=4+LN*10:GOSUB480 720 FORA=20TOHI(LN)+1STEP-1:PRINT" [145][157][157]";:NEXT:RETURN 730 REM---MENU 740 PRINT"[147]":CY=4:CX=12:GOSUB480:PRINTTT$ 750 CY=8:CX=8:GOSUB480:PRINT"[150]SELECT OPERATION (1-4)" 760 PRINT:PRINTTAB(11)"1 ADDITION":PRINTTAB(11)"2 SUBTRACTION" 770 PRINTTAB(11)"3 MULTIPLICATION":PRINTTAB(11)"4 DIVISION":CX=31:GOSUB480 780 Z$="4":GOSUB840:MA=A-1 790 CY=16:CX=7:GOSUB480:PRINT"[154]SELECT SKILL LEVEL (1-3) "; 800 Z$="3":GOSUB840:LV=A-1 810 CY=19:CX=6:GOSUB480:PRINT"[153]SELECT STARTING SPEED (1-9) "; 820 Z$="9":GOSUB840:GS=A:RETURN 830 REM---GET NUMBER 840 POKE198,0:POKETC,1 850 PRINT"[209][157]";:FORA=1TO50:NEXT:PRINT" [157]";:FORA=1TO50:NEXT 860 GETA$:IFA$<"1"ORA$>Z$THEN850 870 PRINTA$:FORA=1TO300:NEXT:A=VAL(A$):RETURN 880 REM---LEVEL DATA 890 DATA1,9,1,9,10,20,10,20,50,99,50,99,1,4,1,12,5,8,3,12,9,12,5,12